#ifdef _WIN32
#include <windows.h>
#include <shlwapi.h>
 
#pragma comment(lib,"shlwapi32.lib")

/*
typedef std::basic_string<TCHAR> tstring;

tstring GetModulePath() {
  TCHAR acPath[MAX_PATH];
  if (GetModuleFileName(NULL,acPath,dwBufSize)) {
    PathRemoveFileSpec(acPath); // remove executable name
    return tstring(acPath);
  }
  return tstring(_T("<none>"));
}*/

#define PATH_SEPARATOR '\\'
 
#endif
#ifdef __unix

#define PATH_SEPARATOR '/'

#endif

#ifdef _WIN32
    #define POPEN _popen
    #define PCLOSE _pclose
#else
    #define POPEN popen
    #define PCLOSE pclose
#endif

// TODO: Other operating systems

